//
//  WelcomeView.swift
//  Weibo
//
//  Created by 唐润欣 on 16/6/18.
//  Copyright © 2016年 唐润欣. All rights reserved.
//

import UIKit

//UIView的生命周期函数
/**
didMoveToSuperview,didMoveToWindow,layoutSubviews的调用顺序
1. 先调用 didMoveToSuperview
2. 调用 didMoveToWindow
3. 调用layoutSubviews， layoutSubviews调用完成之后，自动布局才会生效。 layoutSubviews可能会多次调用，比如说添加子view
4. 调用layoutIfNeeded，可以强制调用 layoutSubviews， 更新UI
*/

class WelcomeView: UIView {

    /// 头像
    private lazy var avatar_large: UIImageView = UIImageView()
    
    /// 欢迎文字
    private lazy var welcomeLabel: UILabel = UILabel(text: "\(UserAccount.sharedUserAccount.screen_name!)欢迎归来", fontSize: 16)
    
    init() {
        
        super.init(frame: screenBounds)
        setupUI()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func didMoveToWindow() {
        
        //添加头像的弹力动画
        addAnimation()
        super.didMoveToWindow()
    }
    
    override func layoutSubviews() {
        
        super.layoutSubviews()
    }
}

// MARK: - 设置ui
extension WelcomeView {
    
    ///  给头像添加弹力动画
    func addAnimation() {
        
        //更新头像的自动布局
        avatar_large.snp_updateConstraints { (make) -> Void in
            
            make.centerY.equalTo(self).offset(-150)
        }
        
        //弹力动画
        //usingSpringWithDamping: 弹力系数，越小越弹
        //initialSpringVelocity: 重力加速度
        //UIViewAnimationOptions， 在oc中，如果传多个值，需要用 `|`符号隔开，如果在swift中，多个值，需要放到数组。不传的话，需要写一个空数组
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 10, options: [], animations: { () -> Void in
            
            //强制更新视图，调用该方法之后，会调用layoutSubviews更新布局
            self.layoutIfNeeded()
            
            }) { (finish) -> Void in
                
                self.removeFromSuperview()
        }
}


    private func setupUI() {
        
        //使用图片作为背景颜色
        backgroundColor = UIColor(patternImage: UIImage(named: "ad_background")!)
        
        //1. 添加子控件
        addSubview(avatar_large)
        addSubview(welcomeLabel)
        
        //2. 自动布局
        avatar_large.snp_makeConstraints { (make) -> Void in
            
            make.centerX.equalTo(self)
            make.centerY.equalTo(self).offset(-50)
            make.size.equalTo(CGSizeMake(90, 90))
        }
        
        welcomeLabel.snp_makeConstraints { (make) -> Void in
            
            make.centerX.equalTo(self)
            make.centerY.equalTo(self).offset(50)
        }
        
        //3.给avartar_large设头像
        avatar_large.sd_setImageWithURL(NSURL(string: UserAccount.sharedUserAccount.avatar_large!), placeholderImage: UIImage(named: "avatar_default_big"))
        
        //4.设置圆角头像
        avatar_large.layer.cornerRadius = 45
        avatar_large.layer.masksToBounds = true
        
        //5. 强制更新布局：保证动画执行前，布局正确显示
        self.layoutIfNeeded()
    }
}

